##Pseudotime Analysis was carried out using Monocle
##Input was FPKM table generated by Cuffnorm


expr_matrix <- read.table("genes2.csv", sep="\t", header=TRUE, row.names=1)
sample_sheet <- read.table("PhenoData.csv", sep="\t", header=TRUE, row.names=1)
gene_annotation <- read.table("featureData.csv", sep="\t", header=TRUE, row.names=1)
pd <- new("AnnotatedDataFrame", data = sample_sheet)
fd <- new("AnnotatedDataFrame", data = gene_annotation)
library(monocle)
pd <- new("AnnotatedDataFrame", data = sample_sheet)
fd <- new("AnnotatedDataFrame", data = gene_annotation)
Expr <- newCellDataSet(as.matrix(expr_matrix),
                phenoData = pd,
                featureData = fd,
                lowerDetectionLimit = 0.1,
                expressionFamily = tobit(Lower = 0.1))
rpc_matrix <- relative2abs(Expr, method = "num_genes")
Expr <- newCellDataSet(as(as.matrix(rpc_matrix), "sparseMatrix"),
                phenoData = pd,
                featureData = fd,
                lowerDetectionLimit = 0.5,
                expressionFamily = negbinomial())
Expr <- estimateSizeFactors(Expr)
Expr <- estimateDispersions(Expr)
Expr <- detectGenes(Expr, min_expr = 0.1)
expressed_genes <- row.names(subset(fData(Expr), num_cells_expressed >= 5))
disp_table <- dispersionTable(Expr)
unsup_clustering_genes <- subset(disp_table, mean_expression >= 0.1)
Expr <- setOrderingFilter(Expr, unsup_clustering_genes$gene_id)
plot_ordering_genes(Expr)
plot_pc_variance_explained(Expr)
Expr <- reduceDimension(Expr, max_components = 2, num_dim = 5, reduction_method = 'tSNE', verbose = T)
Expr <- clusterCells(Expr, num_clusters = 6)
plot_cell_clusters(Expr, 1, 2, color = "Timepoint")
marker_diff <- markerDiffTable(Expr[expressed_genes,], cth, residualModelFormulaStr = "~Timepoint + num_genes_expressed", cores = 10)
marker_diff <- markerDiffTable(Expr[expressed_genes,], residualModelFormulaStr = "~Timepoint + num_genes_expressed", cores = 10)
cth <- newCellTypeHierarchy()
marker_diff <- markerDiffTable(Expr[expressed_genes,], cth, residualModelFormulaStr = "~Timepoint + num_genes_expressed", cores = 10)
diff_test_res <- differentialGeneTest(Expr_myo[expressed_genes,],
diff_test_res <- differentialGeneTest(Expr[expressed_genes,], fullModelFormulaStr = "~Timepoint + num_genes_expressed"
)
diff_test_res <- differentialGeneTest(Expr[expressed_genes,], fullModelFormulaStr = "~Timepoint + num_genes_expressed", cores=10)
ordering_genes <- row.names (subset(diff_test_res, qval < 0.01))
ordering_genes
Expr <- setOrderingFilter(Expr, ordering_genes)
plot_ordering_genes(Expr)
Expr <- reduceDimension(Expr, max_components = 2, method = 'DDRTree')
Expr <- orderCells(Expr)
plot_cell_trajectory(Expr, color_by = "Timepoint")
plot_cell_trajectory(Expr, color_by = "Pseudotime")
plot_cell_trajectory(Expr, color_by = "State")
clustering_DEG_genes <- differentialGeneTest(Expr_myo[Expr_expressed_genes,], fullModelFormulaStr = '~State', cores = 10)
clustering_DEG_genes <- differentialGeneTest(Expr[Expr_expressed_genes,], fullModelFormulaStr = '~State', cores = 10)
clustering_DEG_genes <- differentialGeneTest(Expr[expressed_genes,], fullModelFormulaStr = '~State', cores = 10)
clustering_DEG_genes
diff_test_res <- differentialGeneTest(Expr, fullModelFormulaStr = "~sm.ns(Pseudotime)", cores=10)
diff_test_res
head(diff_test_res)
diff_test_res <- differentialGeneTest(Expr, fullModelFormulaStr = "~sm.ns(Pseudotime)", cores=10)
diff_test_res
write.table(diff_test_res, file="Diff_State.txt", sep="\t", col.names=NA)
plot_genes_in_pseudotime(Expr, color_by = "State")
q()
